import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
import { LocationStrategy, HashLocationStrategy, registerLocaleData } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { HttpClientModule } from '@angular/common/http';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import {StartComponent} from "./home/index/class/start/start.component";//花名册首页
import {AddRollComponent} from "./home/index/class/add-roll/add-roll.component";//添加花名册
import {RollNavComponent} from "./home/index/class/roll-info/roll-nav/roll-nav.component";//花名册子导航
import { RollInfoComponent } from "./home/index/class/roll-info/roll-info.component";//
import { RollClassComponent } from "./home/index/class/roll-info/roll-class/roll-class.component"; //花名册班级成绩表
import  { GradeMinuteComponent} from "./home/index/class/roll-info/grade-minute/grade-minute.component";//花名册成绩详情
import { RollNoticeComponent } from "./home/index/class/roll-info/roll-notice/roll-notice.component"; //花名册公告
import { RollSettingComponent} from "./home/index/class/roll-info/roll-setting/roll-setting.component"; //花名册设置
import { AddModuleComponent } from "./home/index/class/roll-info/add-module/add-module.component";//添加花名册计算成绩模块
import {QrCodeComponent} from "./home/index/class/roll-info/qr-code/qr-code.component"; //放大二维码组件
import { AddNoticeComponent } from "./home/index/class/roll-info/add-notice/add-notice.component"; //添加公告
import {QRCodeModule} from "angular2-qrcode"; //生成二维码组件
import { IndexComponent } from "./home/index/index.component"; // 首页
import {EnterComponent} from "./home/index/enter/enter.component"; //进入入口
import {ClassComponent} from "./home/index/class/class.component";  //班级入口
import {SwotComponent} from "./home/index/swot/swot.component"; // swot分析入口
// service
import { UtilService } from './my-service/util.service';
import { RollService } from "./my-service/roll.service";
import {appService} from "./my-service/app.service";
import {classService} from "./my-service/class.service";
//公共组件
import { NavComponent } from './nav/nav.component';
import { breadcrumbComponent } from './my-public/breadcrumb/breadcrumb.component';
import { LoadingComponent } from './my-public/loading/loading.component';
import { maskComponent } from './my-public/mask/mask.component';
import { closeComponent } from './my-public/close.component';
import { tabsetComponent } from './my-public/tabset.component';
// 画布模块组件
import {listComponent} from "./home/index/swot/list/list.component"; //swot list
import {canvasmsgComponent} from "./home/index/swot/canvas/canvasmsg/canvasmsg.component"; // canvas msg
import {timelistComponent} from "./home/index/swot/list/timelist.component";  // 时间线组件
import {explainComponent} from "./home/index/swot/explain/explain.component"; // 说明
import {canvasComponent} from "./home/index/swot/canvas/canvas.component";  // 画布组件
import {canvaslistComponent} from "./home/index/swot/canvaslist/canvaslist.component";  //画布列表
import {classtotimelineComponent} from "./home/index/swot/classtotimeline/classtotimeline.component";
import {recoveryComponent} from "./home/index/swot/list/recovery/recovery.component";
import {addboxComponent} from "./home/index/swot/canvas/addbox/addbox.component";
import {blockcanvasComponent} from "./home/index/swot/canvas/blockcanvas/blockcanvas.component";
import {canvasaddComponent} from "./home/index/swot/canvas/canvasadd/canvasadd.component";
import {classComponent} from "./home/index/swot/list/class/class.component";
import {canvasCodeComponent} from "./home/index/swot/canvas/canvasCode/canvasCode.component";
import {chartsComponent} from "./home/index/swot/canvas/charts/charts.component";
import {dataComponent} from "./home/index/swot/canvas/data/data.component";
import {notecanvasComponent} from "./home/index/swot/canvas/notecanvas/notecanvas.component";
import {questioncanvasComponent} from "./home/index/swot/canvas/questioncanvas/questioncanvas.component";
import {trainMsgComponent} from "./home/index/swot/canvas/trainMsg/trainMsg.component";
import {canvasDustbinComponent} from "./home/index/swot/canvas/canvasDustbin/canvasDustbin.component";
import {TimelineComponent} from "./home/index/swot/list/Timeline/Timeline.component";
// UI
import { NgZorroAntdModule, NZ_MESSAGE_CONFIG } from 'ng-zorro-antd';
//指令
import { ZeditorDirective } from './my-directive/zeditor.directive';
import { ZeditorRenderElDirective } from './my-directive/zeditorRenderEl.directive';
import {clickstopDirective} from "./my-directive/clickstop.directive";
//管道
import { ToHTMLPipe } from "./my-pipe/to-html.pipe";

@NgModule({
  declarations: [
    AppComponent,
    NavComponent,
    HomeComponent,
    StartComponent,
    breadcrumbComponent,
    AddRollComponent,
    RollNavComponent,
    RollInfoComponent,
    RollClassComponent,
    GradeMinuteComponent,
    RollNoticeComponent,
    RollSettingComponent,
    AddModuleComponent,
    QrCodeComponent,
    AddNoticeComponent,
    IndexComponent,
    ClassComponent,
    EnterComponent,
    SwotComponent,
    LoadingComponent,
    maskComponent,
    closeComponent,
    tabsetComponent,
    listComponent,
    canvasmsgComponent,
    timelistComponent,
    explainComponent,
    canvasComponent,
    canvaslistComponent,
    classtotimelineComponent,
    recoveryComponent,
    addboxComponent,
    blockcanvasComponent,
    canvasaddComponent,
    classComponent,
    canvasCodeComponent,
    chartsComponent,
    dataComponent,
    notecanvasComponent,
    questioncanvasComponent,
    trainMsgComponent,
    canvasDustbinComponent,
    TimelineComponent,
    //指令
    ZeditorDirective,
    ZeditorRenderElDirective,
    clickstopDirective,
    //管道
    ToHTMLPipe

  ],
  imports: [
    AppRoutingModule,
    HttpClientModule,
    BrowserModule,
    FormsModule,
    BrowserAnimationsModule,
    NgZorroAntdModule,
    HttpModule,
    QRCodeModule
  ],
  providers: [
    UtilService,
    RollService,
    appService,
    classService,
    { provide: LocationStrategy, useClass: HashLocationStrategy }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
